package com.can.ThreadState;

//测试Join方法
//想象为插队
//Join合并线程，待此线程执行完成后，再执行其他线程，其他线程阻塞
public class TestJoin implements Runnable{

    @Override
    public void run() {
        for (int i = 0; i < 1000; i++) {
            System.out.println("线程vip来了"+i);
        }
    }

    public static void main(String[] args) throws InterruptedException {

        //启动线程
        TestJoin testJoin = new TestJoin();
        Thread thread = new Thread(testJoin);
        thread.start();

        //主线程
        for (int i = 0; i < 500; i++) {
            if(i==200){ //主线程到200时候让 线程vip插队,待此线程执行完成后，再执行其他线程，其他线程阻塞
                //thread.join()方法阻塞调用此方法的线程(calling thread)进入 TIMED_WAITING 状态，直到线程thread完成，此线程再继续；
                thread.join();//插队
            }
            System.out.println("main"+i);
        }
    }
}
